home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / comm / mebbs / chico203.lha / chicago.rexx < prev    next >
OS/2 REXX Batch file  |  1994-11-09  |  45KB  |  1,262 lines

  1. /* Chicago Gangland Version 2.03 by Steve Robbins  Last updated 30 Oct 94 */
  2.  
  3. options results
  4. parse arg LineNumber
  5. bbsname = 'The Guru Meditation' /*Put BBS name here, 'BBS' will be appended*/
  6. if ~show('L','rexxsupport.library') then do                  
  7.    if addlib('rexxsupport.library',0,-30,0) then NOP
  8.    else do
  9.       say 'Rexxsupport.library is not available'
  10.       exit 10
  11.    end
  12. end
  13. if( ~show( 'l', "mebbsarexx.library" ) )then do
  14.    if( ~addlib( "mebbsarexx.library", 0, -30, 0 ) )then do
  15.       say "Could not open library"
  16.       exit 10
  17.    end
  18. end
  19. signal on syntax
  20. signal on ioerr
  21. DoorName = "Chicago Gangland"
  22. call GETVAR DoorName, LineNumber, 1            
  23. SpaceName = result 
  24. Firstname = Delword(SpaceName,2)
  25. Name = space(SpaceName,1,'_')
  26. CLS = 'H'
  27. call GETVAR DoorName, LineNumber, 8
  28. ansiflag = result
  29. if ansiflag > 1 then ansiflag = 1
  30. call GETVAR DoorName, LineNumber, 10
  31. LINES = upper(result)
  32. random(1,2,time('s'))
  33. if ansiflag then do
  34. WHITE = ''  
  35. RED = ''
  36. YELLOW =''  
  37. BLACK = ''
  38. GREEN = ''  
  39. CYAN = ''
  40. MAGENTA = ''  
  41. BLUE = ''
  42. CLEAR = ''  
  43. HOM = 'H'
  44. end 
  45. else do
  46. WHITE = ''  
  47. RED = ''
  48. YELLOW =''  
  49. BLACK = ''
  50. GREEN = ''  
  51. CYAN = ''
  52. MAGENTA = ''  
  53. BLUE = ''
  54. CLEAR = ''  
  55. HOM = ''
  56. end
  57. File.1 = 'Doors:chicago/Gangland/instructions'
  58. File.2 = 'Doors:chicago/gangland/news7'
  59. File.3 = 'Doors:chicago/gangland/news6'
  60. File.4 = 'Doors:chicago/gangland/news5'
  61. File.5 = 'Doors:chicago/gangland/news4'
  62. File.6 = 'Doors:chicago/gangland/news3'
  63. File.7 = 'Doors:chicago/gangland/news2'
  64. File.8 = 'Doors:chicago/gangland/news1'
  65. File.9 = 'Doors:chicago/gangland/Chicago.data'
  66. File.10 = 'Doors:chicago/Gangland/instructionsans'
  67. /* starting Stats */
  68. datec = date()
  69. costfor = 1
  70. pos = 0
  71. deathflag = 0
  72. q=0
  73. /*begin*/
  74. if exists("doors:Chicago/Gangland/InUse") then do
  75.    call open(inuse,"doors:Chicago/Gangland/InUse",'R')
  76.    test = readln(inuse)
  77.    if word(test,1) ~= LineNumber then do
  78.       call message DoorName, LineNumber, "This game is currently in use on another line.", 1
  79.       call message DoorName, LineNumber, "Please try back again in a few minutes.", 1
  80.       address command "wait 1"
  81.       call Exit_Door DoorName, LineNumber
  82.       exit
  83.    end
  84.    call close(inuse)
  85. end
  86. call open(inuse, "Doors:Chicago/Gangland/InUse", 'W')
  87. call writeln(inuse, LineNumber || " " || SpaceName)
  88. call close(inuse)
  89. call message DoorName, LineNumber,  CLS, 1
  90. call open(data,File.9,'R')
  91. call message DoorName, LineNumber, 'Loading Chicago Gangland...', 0
  92. do c = 1 to 25
  93.    call message DoorName, LineNumber, '.', 0
  94.    do c1 = 1 to 25
  95.       protect.c.c1 = readln(data)
  96.    end
  97. end
  98. z=0
  99. do until EOF(data)
  100.    z=z+1
  101.    stats.z=readln(data)
  102.    parse var stats.z name.z alias.z turnsleft.z gangmembers.z startx.z starty.z points.z money.z totalgangmembers.z protection.z bootleg.z  
  103.    protection.z = STRIP(protection.z)
  104.    bootleg.z = STRIP(bootleg.z)
  105.    if name = name.z then q=z
  106.    alias.z = translate(alias.z,' ','_','')
  107. end
  108. call message DoorName, LineNumber,  ' ', 1
  109. call message DoorName, LineNumber,  ' ', 1
  110. call message DoorName, LineNumber,  BLUE'Done'CLEAR, 1
  111. call close(data)
  112.                                              
  113. street.1 = First
  114. street.2 = Second
  115. street.3 = Third
  116. street.4 = Fourth
  117. street.5 = Fifth
  118. street.6 = Sixth
  119. street.7 = Seventh
  120. street.8 = Eighth
  121. street.9 = Ninth
  122. street.10 = Tenth
  123. street.11 = Eleventh
  124. street.12 = Twelveth
  125. street.13 = Thirteenth
  126. street.14 = Fourteenth
  127. street.15 = Fifteenth
  128. street.16 = Sixteenth
  129. street.17 = Seventeenth
  130. street.18 = Eighteenth
  131. street.19 = Nineteenth
  132. street.20 = Twentieth
  133. street.21 = Twentyfirst
  134. street.22 = Twentysecond
  135. street.23 = Twentythird
  136. street.24 = Twentyfourth
  137. street.25 = Twentyfifth
  138.  
  139. call message DoorName, LineNumber,  CLS, 1
  140. if ansiflag then do
  141. call message DoorName, LineNumber,  '', 1
  142. call message DoorName, LineNumber,  '               ***********************************************', 1
  143. call message DoorName, LineNumber,  '               *                                             *', 1
  144. call message DoorName, LineNumber,  '               *              Chicago Gangland               *', 1
  145. call message DoorName, LineNumber,  '               *                Version 2.03                 *', 1
  146. call message DoorName, LineNumber,  '               *           Written for Skyline BBS           *', 1
  147. call message DoorName, LineNumber,  '               *            Converted to MEBBSNet            *', 1
  148. call message DoorName, LineNumber,  '               *          by Steve Robbins [M3014]           *', 1
  149. call message DoorName, LineNumber,  '               *                                             *', 1
  150. call message DoorName, LineNumber,  '               ***********************************************', 1
  151. call message DoorName, LineNumber,  '', 1
  152. call message DoorName, LineNumber,  '', 1
  153. call message DoorName, LineNumber,  '', 1
  154. call message DoorName, LineNumber,  '', 1
  155. call message DoorName, LineNumber,  '', 1
  156. call message DoorName, LineNumber,  '', 1
  157. call message DoorName, LineNumber,  '', 1
  158. call message DoorName, LineNumber,  '', 1
  159. call message DoorName, LineNumber,  '', 1
  160. call message DoorName, LineNumber,  '', 1
  161. call hotkey DoorName, LineNumber,  'Hit return to continue...'
  162. call checkcarrier
  163. end
  164. else do
  165. call message DoorName, LineNumber,  '', 1
  166. call message DoorName, LineNumber,  '               ***********************************************', 1
  167. call message DoorName, LineNumber,  '               *                                             *', 1
  168. call message DoorName, LineNumber,  '               *              Chicago Gangland               *', 1
  169. call message DoorName, LineNumber,  '               *                Version 2.03                 *', 1
  170. call message DoorName, LineNumber,  '               *           Written for Skyline BBS           *', 1
  171. call message DoorName, LineNumber,  '               *            Converted to MEBBSNet            *', 1
  172. call message DoorName, LineNumber,  '               *          by Steve Robbins [M3014]           *', 1
  173. call message DoorName, LineNumber,  '               *                                             *', 1
  174. call message DoorName, LineNumber,  '               ***********************************************', 1
  175. call message DoorName, LineNumber,  '', 1
  176. call message DoorName, LineNumber,  '', 1
  177. call message DoorName, LineNumber,  '', 1
  178. call message DoorName, LineNumber,  '', 1
  179. call message DoorName, LineNumber,  '', 1
  180. call message DoorName, LineNumber,  '', 1
  181. call message DoorName, LineNumber,  '', 1
  182. call message DoorName, LineNumber,  '', 1
  183. call message DoorName, LineNumber,  '', 1
  184. call message DoorName, LineNumber,  '', 1
  185. call hotkey DoorName, LineNumber,  'Hit return to continue...'
  186. call checkcarrier
  187. end
  188.  
  189. aliascheck: 
  190. if alias.q = 'DEADMAN' then do
  191.    call message DoorName, LineNumber,  CLS, 1
  192.    call message DoorName, LineNumber,  RED||"You have already died today. Come back tomorrow to get restarted.", 1
  193.    address command "wait 1"
  194.    call close(aliases)
  195.    signal goodbye
  196. end
  197. if q = 0 then do
  198.    call message DoorName, LineNumber,  '', 1
  199.    call checkcarrier
  200.    call prompt DoorName, LineNumber,  ''Magenta'Please enter an alias:', 15
  201.    alias = upper(result)
  202.    if alias = '' then do
  203.       call message DoorName, LineNumber,  RED'You must enter an alias!'CLEAR, 1
  204.       signal aliascheck
  205.    end
  206.    do i = 1 to z
  207.       if alias = alias.i then do
  208.          call message DoorName, LineNumber,  RED'That alias is already being used!', 1 
  209.          address command "wait 1"
  210.          signal aliascheck
  211.       end                  
  212.    end
  213. end
  214. signal begin 
  215.  
  216. begin:
  217. if q = 0 then do
  218.    z = z + 1
  219.    q = z
  220.    name.z = name
  221.    alias.z = alias 
  222.    turnsleft.z = 20
  223.    gangmembers.z = 50
  224.    startx.z = upper(random(1,25,time('s')))
  225.    starty.z = upper(random(1,25,time('s')))
  226.    points.z = 5000
  227.    money.z = 1000
  228.    totalgangmembers.z = 50
  229.    protection.z = 0
  230.    bootleg.z = 0
  231.    call open(news7,file.2,'A')
  232.    call writeln(news7,'Ganglord 'alias' has moved into the Chicago!')
  233.    call close(news7)
  234.    signal messages
  235. end
  236. else do    
  237.    call open(news7,file.2,'A')
  238.    call writeln(news7,'Ganglord 'alias.q' is active again!')
  239.    call close(news7)
  240.    signal messages
  241. end
  242.  
  243. messages:
  244. call message DoorName, LineNumber,  CLS, 1
  245. call message DoorName, LineNumber,  MAGENTA'Searching for messages...', 1
  246. if ~exists('Doors:chicago/gangland/messages') then do
  247.    call message DoorName, LineNumber,  '', 1
  248.    call message DoorName, LineNumber,  RED'No messages found!', 1
  249.    address command "wait 1"
  250.    signal main
  251. end
  252. call open(mess,'Doors:chicago/gangland/messages','R')
  253. i = 0
  254. do until EOF(mess)
  255.    i = i + 1
  256.    j = 1
  257.    tomess.i = readln(mess)
  258.    frommess.i = readln(mess)
  259.    do until mymess.i.j = '*****' | EOF(mess)
  260.       j = j + 1
  261.       mymess.i.j = readln(mess)
  262.    end
  263.    if tomess.i = alias.q then do
  264.       k = 1
  265.       call message DoorName, LineNumber,  CLS, 1
  266.       call message DoorName, LineNumber,  GREEN'  TO: 'MAGENTA tomess.i, 1
  267.       tomess.i = ''
  268.       call message DoorName, LineNumber,  GREEN'FROM: 'MAGENTA frommess.i, 1
  269.       frommess.i = ''
  270.       j = 1
  271.       do until mymess.i.j = '*****' | EOF(mess)
  272.          j = j + 1
  273.          if mymess.i.j ~= '*****' then call message DoorName, LineNumber,  CYAN mymess.i.j, 1
  274.       end
  275.       call hotkey DoorName, LineNumber,  'Hit return to continue...'
  276.       call checkcarrier
  277.    end
  278. end
  279. h = i
  280. call close(mess)
  281. if k = 1 then do
  282.    call open(mess,'Doors:chicago/gangland/messages','W')
  283.    i = 0
  284.    do until i = h
  285.       i = i + 1
  286.       r = 0
  287.       if tomess.i ~= '' then do
  288.          call writeln(mess,tomess.i)  
  289.          r = 1
  290.          s = 1
  291.       end
  292.       if frommess.i ~= '' then writeln(mess,frommess.i)
  293.       j = 1
  294.       if s = 1 then do until mymess.i.j = '*****'
  295.          j = j + 1
  296.          if r = 1 then writeln(mess,mymess.i.j)
  297.       end
  298.       s = 0
  299.    end
  300. end
  301. call close(mess)
  302.  
  303. main:
  304. if startx.q = 1 & starty.q = 1 then signal pool
  305. call message DoorName, LineNumber,  CLS, 1
  306. call message DoorName, LineNumber,  center(''GREEN''alias.q'',70)  , 1
  307. call message DoorName, LineNumber,  ' ', 1
  308. m = startx.q
  309. n = starty.q
  310. call message DoorName, LineNumber,  ''CYAN'You are at the corner of 'street.m' North and 'street.n' East', 1
  311. call message DoorName, LineNumber,  'You have 'gangmembers.q' gangmembers with you', 1
  312. protect_alias = Delword(protect.m.n,1,1)
  313. protect_gang = Word(protect.m.n,1)
  314. if protect_alias ~= '' then do
  315.    proflag = 0
  316.    call message DoorName, LineNumber,  'This block is protected by' GREEN||protect_alias||CLEAR, 1
  317. end
  318. else do
  319.    call message DoorName, LineNumber,  'This block is not under protection'||CLEAR, 1
  320.    proflag = 1
  321. end
  322. do i = 1 to z
  323.    if startx.q = startx.i & starty.q = starty.i & alias.q ~= alias.i & alias.i ~= '' then do
  324.    call message DoorName, LineNumber,  'You also see 'alias.i' on this block there are 'gangmembers.i' gangmembers with him!', 1
  325.    end
  326. end
  327. call message DoorName, LineNumber,  ' ', 1
  328. call message DoorName, LineNumber,  ''MAGENTA'Q S O C H M G N I Y E ? ('YELLOW||turnsleft.q||MAGENTA')>'CLEAR'', 0
  329. call hotkey DoorName, LineNumber, ""
  330. ANS = upper(result)
  331. call checkcarrier
  332. if ans = 'Q' then signal goodbye
  333. if ans = 'S' then signal shootout
  334. if ans = 'O' then signal protection
  335. if ans = 'C' then signal addon
  336. if ans = 'H' then signal hitother
  337. if ans = 'M' then signal move
  338. if ans = 'G' then signal highscores
  339. if ans = 'N' then signal news
  340. if ans = 'I' then signal instructions
  341. if ans = 'Y' then signal stats
  342. if ans = 'E' then signal enter
  343. if ans = '' then signal main
  344. if ans = '?' then do
  345.    call message DoorName, LineNumber,  ' ', 1
  346.    call message DoorName, LineNumber,  '          'YELLOW'Q = Quit to' bbsname 'BBS', 1
  347.    call message DoorName, LineNumber,  '          S = Shootout', 1
  348.    call message DoorName, LineNumber,  '          O = Offer protection to the storeowners', 1
  349.    call message DoorName, LineNumber,  '          C = Change your protection on this block', 1
  350.    call message DoorName, LineNumber,  '          H = Hit the the protected block of another gang', 1
  351.    call message DoorName, LineNumber,  '          M = Move to another block', 1
  352.    call message DoorName, LineNumber,  '          G = Ganglord scores', 1
  353.    call message DoorName, LineNumber,  '          N = Chicago Daily News', 1
  354.    call message DoorName, LineNumber,  '          I = Instructions', 1
  355.    call message DoorName, LineNumber,  '          Y = Your statistics', 1
  356.    call message DoorName, LineNumber,  '          E = Enter a message'CLEAR, 1
  357.    call message DoorName, LineNumber,  ' ', 1
  358.    call hotkey DoorName, LineNumber,  'Hit return to continue...'
  359.    call checkcarrier
  360. end
  361. signal main
  362.      
  363. pool:
  364. call message DoorName, LineNumber,  CLS, 1
  365. call message DoorName, LineNumber,  GREEN'Welcome to the Southside Pool Hall', 1
  366. call message DoorName, LineNumber,  'What is your pleasure?'CLEAR, 1
  367. call message DoorName, LineNumber,  ' ', 1
  368. call message DoorName, LineNumber,  YELLOW'M H B G Q ? ('turnsleft.q')>'CLEAR, 0
  369. call hotkey DoorName, LineNumber, ""
  370. ANS = upper(result)
  371. call checkcarrier
  372. if ans = 'M' then signal move
  373. if ans = 'H' then signal hire
  374. if ans = 'B' then signal still
  375. if ans = 'G' then signal gamble
  376. if ans = 'Q' then do
  377.    startx.q = upper(random(1,25,time('s')))
  378.    starty.q = upper(random(1,25,time('s')))
  379.    signal goodbye
  380. end
  381. if ans = '' then signal pool
  382. if ans = '?' then do
  383.    call message DoorName, LineNumber,  ' ', 1
  384.    call message DoorName, LineNumber,  '          'YELLOW'M = Move', 1
  385.    call message DoorName, LineNumber,  '          H = Hire new gangmembers', 1
  386.    call message DoorName, LineNumber,  '          B = Buy a bootleg operation', 1
  387.    call message DoorName, LineNumber,  '          G = Gamble at a game of pool', 1
  388.    call message DoorName, LineNumber,  '          Q = Quit to 'bbsname 'BBS'CLEAR'', 1
  389.    call message DoorName, LineNumber,  ' ', 1
  390.    call hotkey DoorName, LineNumber,  'Hit return to continue...'
  391.    call checkcarrier
  392. end
  393. signal main
  394.  
  395. hire:
  396. call message DoorName, LineNumber,  CLS, 1
  397. cost = random(100,200,time('s'))
  398. if costfor > cost then cost = costfor
  399. costfor = cost
  400. call message DoorName, LineNumber,  CYAN'New gangmembers salaries are 'cost' dollars each.', 1
  401. call message DoorName, LineNumber,  'You currently have 'gangmembers.q 'gangmembers and 'money.q' dollars.', 1
  402. call message DoorName, LineNumber,  ' ', 1
  403. possible = money.q % cost
  404. call prompt DoorName, LineNumber,  MAGENTA'How many gangmembers would you like to hire?('possible' max)', 7
  405. newgang = upper(result)
  406. call checkcarrier
  407. if newgang = 0 | newgang = '' then signal pool
  408. do i = 1 to length(newgang)
  409.    if ~datatype(substr(newgang,i,1),Whole) then do
  410.       call message DoorName, LineNumber,  '', 1
  411.       call message DoorName, LineNumber,  RED'You must enter a valid whole number!', 1
  412.       address command "wait 1"
  413.       signal pool
  414.    end
  415. end
  416. totcost = cost * newgang
  417. if totcost > money.q then do
  418.    call message DoorName, LineNumber,  '', 1
  419.    call message DoorName, LineNumber,  RED'You don''t have enough money for 'newgang' gangmembers!', 1
  420.    address command "wait 1"
  421.    signal pool
  422. end
  423. call message DoorName, LineNumber,  MAGENTA'The total of the salaries will be 'totcost' dollars.', 1
  424. call message DoorName, LineNumber,  ' ', 1
  425. call prompt DoorName, LineNumber,  CYAN'Are you sure you want to hire them?(Y/n)'CLEAR, 1
  426. ans = upper(result)
  427. call checkcarrier
  428. if ans = "N" then signal pool
  429. money.q = money.q - totcost
  430. gangmembers.q = gangmembers.q + newgang
  431. totalgangmembers.q = totalgangmembers.q + newgang
  432. signal pool
  433.  
  434. still:
  435. if money.q < 5000 then do
  436.    call message DoorName, LineNumber,  '', 1
  437.    call message DoorName, LineNumber,  '', 1
  438.    call message DoorName, LineNumber,  RED'You do not have enough money!'CLEAR, 1
  439.    address command "wait 1"
  440.    signal pool
  441. end
  442. call message DoorName, LineNumber,  ' ', 1
  443. call message DoorName, LineNumber,  ' ', 1
  444. call message DoorName, LineNumber,  MAGENTA'Bootleg operations cost $5000 each. You have 'money.q' dollars.', 1
  445. call prompt DoorName, LineNumber,  'How many bootleg operations would you like to purchase?  ', 7
  446. ans = upper(result)
  447. call checkcarrier
  448. if ans = '' then signal pool
  449. if ~datatype(ans,Whole) then do
  450.    call message DoorName, LineNumber,  '', 1
  451.    call message DoorName, LineNumber,  RED'You must enter a valid whole number!', 1
  452.    address command "wait 1"
  453.    signal pool
  454. end
  455. cost = 5000 * ans
  456. if money.q < cost then do
  457.    call message DoorName, LineNumber,  '', 1
  458.    call message DoorName, LineNumber,  RED'You do not have that much money!', 1
  459.    signal still
  460. end
  461. call message DoorName, LineNumber,  'It will cost you 'cost' dollars. Are you sure? (Y/n) ', 0
  462. call hotkey DoorName, LineNumber, ""
  463. if upper(result) = 'N' then signal pool
  464. call checkcarrier
  465. money.q = money.q - cost
  466. bootleg.q = bootleg.q + ans
  467. call message DoorName, LineNumber,  ' ', 1
  468. call message DoorName, LineNumber,  CYAN'Nice doing business with you.'CLEAR, 1
  469. address command "wait 1"
  470. signal pool
  471.  
  472. gamble:
  473. call message DoorName, LineNumber,  CLS, 1
  474. if turnsleft.q < 1 then do
  475.    call message DoorName, LineNumber,  '', 1
  476.    call message DoorName, LineNumber,  RED'You do not have any turns left!', 1
  477.    delay (100)
  478.    signal pool
  479. end
  480. call prompt DoorName, LineNumber,  CYAN'You have $'money.q', how much would you like to bet?($500 limit)'CLEAR, 9
  481. bet = upper(result)
  482. call checkcarrier
  483. if bet = '0' then signal pool
  484. if bet = '' then signal pool
  485. do i = 1 to length(bet)
  486.    if ~datatype(substr(bet,i,1),Whole) then do
  487.       call message DoorName, LineNumber,  '', 1
  488.       call message DoorName, LineNumber,  RED'You must enter a valid whole number!', 1
  489.       address command "wait 1"
  490.       signal pool
  491.    end
  492. end
  493. if bet > 500 then do
  494.    call message DoorName, LineNumber,  '', 1
  495.    call message DoorName, LineNumber,  RED'You can not bet more than $500!'CLEAR, 1
  496.    address command "wait 1"
  497.    signal gamble
  498. end
  499. call message DoorName, LineNumber,  ' ', 1
  500. if bet > money.q then do 
  501.    call message DoorName, LineNumber,  '', 1
  502.    call message DoorName, LineNumber,  RED'You don''t have that much money'CLEAR, 1
  503.    address command "wait 1"
  504.    signal pool
  505. end
  506. win = random(1,3,time('s'))
  507. if bet = '' then signal pool
  508. turnsleft.q = turnsleft.q - 1
  509. call message DoorName, LineNumber,  YELLOW'Rack''em up', 1
  510. address command "wait 1"
  511. call message DoorName, LineNumber,  ' ', 1
  512. if win = 2 then do
  513.    how = random(1,6,time('s'))
  514.    select
  515.       when how = 1 then call message DoorName, LineNumber,  MAGENTA'You sank the 8 ball off the break!', 1
  516.       when how = 2 then call message DoorName, LineNumber,  MAGENTA'You left him with all 7 balls on the table', 1
  517.       when how = 3 then call message DoorName, LineNumber,  MAGENTA'You squeak out a victory by sinking the 8 ball', 1
  518.       when how = 4 then call message DoorName, LineNumber,  MAGENTA'He scratches on the 8 ball.', 1
  519.       when how = 5 then call message DoorName, LineNumber,  MAGENTA'You leave him with 3 balls on the table. Good work.', 1
  520.       otherwise call message DoorName, LineNumber,  MAGENTA'You run the table on him!', 1
  521.    end
  522.    money.q = money.q + bet
  523.    call message DoorName, LineNumber,  ' ', 1
  524.    call message DoorName, LineNumber,  GREEN'You win!', 1
  525.    address command "wait 1"
  526. end
  527. if win = 1 | win = 3 then do
  528.    how = random(1,6,time('s'))
  529.    select
  530.       when how = 1 then call message DoorName, LineNumber,  GREEN'He sinks the 8 ball off the break!', 1
  531.       when how = 2 then call message DoorName, LineNumber,  GREEN'He left you with all 7 balls on the table', 1
  532.       when how = 3 then call message DoorName, LineNumber,  GREEN'He squeaks out a victory by sinking the 8 ball', 1
  533.       when how = 4 then call message DoorName, LineNumber,  GREEN'You scratch on the 8 ball. Tough Luck!', 1
  534.       when how = 5 then call message DoorName, LineNumber,  GREEN'He leaves you with 3 balls on the table.', 1
  535.       otherwise call message DoorName, LineNumber,  GREEN'He runs the table on you!', 1
  536.    end
  537.    money.q = money.q - bet
  538.    call message DoorName, LineNumber,  ' ', 1
  539.    call message DoorName, LineNumber,  RED'You lose!', 1
  540. end
  541. address command "wait 1"
  542. signal pool
  543.  
  544. shootout:                        
  545. killflag = 0
  546. shoottotal = 0
  547. call message DoorName, LineNumber,  CLS, 1
  548. do i = 1 to z
  549.    if startx.q = startx.i & starty.i = starty.q & alias.q ~= alias.i then do
  550.    shoottotal = shoottotal + 1
  551.    end
  552. end
  553. if shoottotal = 0 then do
  554.    call message DoorName, LineNumber,  '', 1
  555.    call message DoorName, LineNumber,  RED'There is no one to attack!', 1
  556.    address command "wait 1"
  557.    signal main
  558. end
  559. call message DoorName, LineNumber,  MAGENTA'Ganglords at your block:', 1
  560. call message DoorName, LineNumber,  ' ', 1
  561. c=1
  562. do i = 1 to z
  563.    if startx.i = startx.q & starty.i = starty.q & alias.q ~= alias.i then do
  564.       call message DoorName, LineNumber,  GREEN||c'.' BLUE alias.i  'with' gangmembers.i 'gangmembers', 1
  565.       gang.c = alias.i
  566.       c=c+1
  567.    end
  568. end
  569. call message DoorName, LineNumber,  ' ', 1
  570. call prompt DoorName, LineNumber,  MAGENTA'Enter the number of the gang you wish to attack (Return to Quit) ', 4
  571. w = 0
  572. victim = upper(result)
  573. call checkcarrier
  574. if victim = "" then signal main
  575. do i = 1 to z
  576.    do h = 1 to c
  577.       if gang.h = alias.i then do 
  578.          w = 1
  579.          r = i 
  580.          junkname = alias.i
  581.          fight2 = gangmembers.i
  582.          break
  583.       end
  584.       if w = 1 then break
  585.    end
  586.    if w = 1 then break
  587. end
  588. if w = 0 then do
  589.    call message DoorName, LineNumber,  '', 1
  590.    call message DoorName, LineNumber,  RED'There is no one at this block by that name!', 1
  591.    address command "wait 1"
  592.    signal main
  593. end
  594. fight3 = fight2
  595. yourper1 = (gangmembers.q / (gangmembers.q + fight2)) * 100
  596. if yourper1 > 95 then yourper1 = 95
  597. if yourper1 < 5 then yourper1 = 5
  598. if w = 0 then signal shootout
  599. call open(news7,file.2,'A')
  600. call writeln(news7,'Ganglord 'alias.q' tries to have a shootout with 'gang.victim'.')
  601. call close(news7)
  602. fight1 = gangmembers.q
  603. call message DoorName, LineNumber,  CLS, 1
  604. call message DoorName, LineNumber,  center(MAGENTA'Your gang:                      His gang:',76), 1
  605. call message DoorName, LineNumber,  center(BLUE'----------                      ---------',76), 1
  606.  
  607. shootagain:
  608. call message DoorName, LineNumber,  CYAN 'H'right(gangmembers.q,20,' '), 0
  609. call message DoorName, LineNumber,  '                             'fight2'    ', 1
  610. call message DoorName, LineNumber,  ' ', 1
  611. if killflag = 0 then do
  612.    call message DoorName, LineNumber,  YELLOW'RETURN to Continue  K to Kill  Q to Quit ', 1
  613.    call hotkey DoorName, LineNumber, ""
  614.    ans = upper(result)
  615.    call checkcarrier
  616.    call message DoorName, LineNumber,  'H                                               ', 1
  617.    if ans = 'Q' then signal quitter2
  618.    if ans = 'K' then killflag = 1
  619. end
  620. losers1 = Random(1,100)
  621. if fight2 > 1000 & gangmembers.q > 1000 then lost  = 100
  622. else if Fight2 > 50 & gangmembers.q > 50 then lost = 10
  623. else lost = 1
  624. if yourper1 >= losers1 then fight2 = fight2 - lost
  625. else gangmembers.q = gangmembers.q - lost
  626. if gangmembers.q < 0 then do
  627.    gangmembers.q = -1
  628.    signal shootyou
  629. end
  630. if fight2 < 0 then do
  631.    fight2 = -1
  632.    signal shoothim
  633. end
  634. signal Shootagain 
  635.               
  636. shootyou:
  637. call message DoorName, LineNumber,  CYAN 'H'right(gangmembers.q,20,' '), 0
  638. call message DoorName, LineNumber,  '                             'fight2'    ', 1
  639. call message DoorName, LineNumber,  ' ', 1
  640. gangmembers.r = fight2
  641. totalgangmembers.r = totalgangmembers.r - (fight3 - fight2)
  642. pointsg = totalgangmembers.r * 100
  643. pointsp = protection.r * 1000
  644. points.r = pointsg + pointsp
  645. money.r = money.r + money.q
  646. bootleg.r = bootleg.r + bootleg.q
  647. call open(news7,file.2,'A')
  648. call writeln(news7,'Ganglord 'alias.q' is killed by 'alias.r'''s gang!')
  649. call close(news7)
  650. signal death
  651.  
  652. shoothim:
  653. call message DoorName, LineNumber,  CYAN 'H'right(gangmembers.q,20,' '), 0
  654. call message DoorName, LineNumber,  '                             'fight2'    ', 1
  655. call message DoorName, LineNumber,  ' ', 1
  656. call message DoorName, LineNumber,  center(YELLOW'You wipe him out!',76), 1
  657. address command "wait 1"
  658. totalgangmembers.q = totalgangmembers.q - (Fight1 - gangmembers.q)
  659. call open(aliases,'Doors:chicago/gangland/aliases','R')
  660. call message DoorName, LineNumber,  '', 1
  661. call message DoorName, LineNumber,  GREEN'You find $'STRIP(money.r)' stashed in his safe.', 1
  662. call message DoorName, LineNumber,  '', 1
  663. call message DoorName, LineNumber,  'You find a ledger giving you the location to 'STRIP(bootleg.r)' bootleg operations.'CLEAR, 1
  664. money.q = money.q + money.r
  665. bootleg.q = bootleg.q + bootleg.r
  666. do c = 1 to 25
  667.    do c1 = 1 to 25
  668.       if Delword(protect.c.c1,1,1) = alias.r then
  669.       protect.c.c1 = 0
  670.    end
  671. end
  672. w = 0
  673. do i = 1 to z
  674.    if junkname = alias.i then do 
  675.       w = 1
  676.       alias.i = ''
  677.       points.i = ''
  678.    end
  679.    if w = 1 then break
  680. end
  681. call message DoorName, LineNumber,  ' ', 1
  682. call open(news7,file.2,'A')
  683. call writeln(news7,'Ganglord 'alias.q' slaughters 'junkname'.')
  684. call close(news7)
  685. signal main
  686.  
  687. quitter2:
  688. gangmembers.r = fight2
  689. totalgangmembers.r = totalgangmembers.r - (fight3 - fight2)
  690. pointsg = totalgangmembers.r * 100
  691. pointsp = protection.r * 1000
  692. points.r = pointsg + pointsp
  693. call open(news7,file.2,'A')
  694. call writeln(news7,'Ganglord 'alias.q' runs from the shootout.')
  695. call close(news7)
  696. call message DoorName, LineNumber,  '', 1
  697. call message DoorName, LineNumber,  center(YELLOW'Chicken!',76), 1
  698. address command "wait 1"
  699. signal main
  700.  
  701. protection:
  702. if turnsleft.q < 1 then do
  703.    call message DoorName, LineNumber,  '', 1
  704.    call message DoorName, LineNumber,  RED'You do not have any turns left!', 1
  705.    delay (100)
  706.    signal main
  707. end
  708. if gangmembers.q < 1 then do
  709.    call message DoorName, LineNumber,  '', 1
  710.    call message DoorName, LineNumber,  ''RED'You don''t have enough gangmembers with you to offer protection!'CLEAR'', 1
  711.    address command "wait 1"
  712.    signal main
  713. end
  714. protectors = word(protect.m.n,1)
  715. if protectors = 0 then signal noprotect
  716. protect_alias = Delword(protect.m.n,1,1)
  717. if protect_alias ~= '' then do
  718.    call message DoorName, LineNumber,  ' ', 1
  719.    call message DoorName, LineNumber,  ' ', 1
  720.    call message DoorName, LineNumber,  ''RED'The block already has protection from 'protect_alias'!'CLEAR'', 1
  721.    address command "wait 1"
  722.    signal main 
  723. end
  724.  
  725. noprotect:
  726. call message DoorName, LineNumber,  ' ', 1
  727. call prompt DoorName, LineNumber,  ''GREEN'How many gangmembers do you want to leave here? 'CLEAR'', 7
  728. protectors = upper(result)
  729. call checkcarrier
  730. if protectors = '' then signal main
  731. if ~datatype(protectors,Whole) then do
  732.    call message DoorName, LineNumber,  RED'You must enter a valid whole number!', 1
  733.    address command "wait 1"
  734.    signal main
  735. end
  736. if protectors = 0 then signal main
  737. protectors = abs(protectors)
  738. if gangmembers.q - protectors < 0 then do
  739.    call message DoorName, LineNumber,  ''RED'You don''t have that many gangmembers!', 1
  740.    signal noprotect
  741. end
  742. gangmembers.q = gangmembers.q - protectors
  743. protection.q = protection.q + 1
  744. protect.m.n = protectors' 'alias.q
  745. turnsleft.q = turnsleft.q - 1 
  746. signal main
  747.  
  748. addon:
  749. call message DoorName, LineNumber,  CLS, 1
  750. if protect_alias ~= alias.q then do
  751.    call message DoorName, LineNumber,  RED'You have to move to a block you are protecting to add or subtract gangmembers'CLEAR, 1
  752.    address command "wait 1"
  753.    signal main
  754. end
  755. call message DoorName, LineNumber,  GREEN'You currently have 'protect_gang' gangmembers protecting this block.', 1
  756. call message DoorName, LineNumber,  '', 1
  757. call message DoorName, LineNumber,  GREEN'Do you want to add or subtract gangmembers?', 1
  758. call message DoorName, LineNumber,  BLUE'                   ('MAGENTA'1'BLUE')'CYAN' Add', 1
  759. call message DoorName, LineNumber,  BLUE'                   ('MAGENTA'2'BLUE')'CYAN' Subtract', 1
  760. call prompt DoorName, LineNumber,  YELLOW'                   (1,2)>', 1
  761. addsub = upper(result)
  762. call checkcarrier
  763. call message DoorName, LineNumber,  CLS, 1
  764. if addsub = 1 then signal addon1
  765. if addsub = 2 then signal addon2
  766. else signal addon
  767.  
  768. addon1:
  769. call prompt DoorName, LineNumber,  GREEN'How many gangmembers do you want to add?', 7
  770. addto = abs(upper(result))
  771. call checkcarrier
  772. if addto = '' then signal main
  773. if gangmembers.q - addto < 0 then do
  774.    call message DoorName, LineNumber,  RED'You don''t have that many gangmembers!', 1
  775.    address command "wait 1"
  776.    signal main
  777. end
  778. protect_add = addto + protect_gang
  779. protect.m.n = protect_add ' ' alias.q
  780. gangmembers.q = gangmembers.q - addto
  781. signal main
  782.  
  783. addon2:
  784. call prompt DoorName, LineNumber,  GREEN'How many gangmembers do you want to subtract?', 7
  785. addto = abs(upper(result))
  786. call checkcarrier
  787. if addto = '' then signal main
  788. if protect_gang - addto < 0 then do
  789.    call message DoorName, LineNumber,  RED'You don''t have that many gangmembers protecting this block!', 1
  790.    address command "wait 1"
  791.    signal main
  792. end
  793. protect_add = protect_gang - addto
  794. if protect_add > 0 then protect.m.n = protect_add ' ' alias.q
  795. else do
  796.    protect.m.n = 0
  797.    protection.q = protection.q - 1
  798. end
  799. gangmembers.q = gangmembers.q + addto
  800. signal main
  801.  
  802. hitother:
  803. killflag = 0
  804. call message DoorName, LineNumber,  CLS, 1
  805. if proflag = 1 then do
  806.    call message DoorName, LineNumber,  '', 1
  807.    call message DoorName, LineNumber,  RED'There is no one protecting this block!'CLEAR, 1
  808.    address command "wait 1"
  809.    signal main
  810. end
  811. if alias.q = protect_alias then do
  812.    call message DoorName, LineNumber,  '', 1
  813.    call message DoorName, LineNumber,  RED'You cannot attack yourself!', 1
  814.    address command "wait 1"
  815.    signal main
  816. end
  817. do f = 1 to z
  818.    if alias.f = protect_alias then break
  819. end
  820. lostgang = protect_gang
  821. yourper = (gangmembers.q / (gangmembers.q + lostgang)) * 100
  822. if yourper > 95 then yourper = 95
  823. call open(news7,file.2,'A')
  824. call writeln(news7,'Ganglord 'alias.q' tries to hit 'protect_alias'''s block.')
  825. call close(news7)
  826. call message DoorName, LineNumber,  CLS, 1
  827. call message DoorName, LineNumber,  center(MAGENTA'Your gang:                      His gang:',76), 1
  828. call message DoorName, LineNumber,  center(BLUE'----------                      ---------',76), 1
  829.  
  830. hitagain:
  831. hisgang = protect_gang
  832. call message DoorName, LineNumber,  CYAN 'H'right(gangmembers.q,20,' '), 0
  833. call message DoorName, LineNumber,  '                             'protect_gang'    ', 1
  834. call message DoorName, LineNumber,  ' ', 1
  835. if killflag = 0 then do
  836.    call message DoorName, LineNumber,  YELLOW'RETURN to Continue  K to Kill  Q to Quit ', 1
  837.    call hotkey DoorName, LineNumber, ""
  838.    ans = upper(result)
  839.    call checkcarrier
  840.    call message DoorName, LineNumber,  'H                                               ', 1
  841.    if ans = 'Q' then signal quitter
  842.    if ans = 'K' then killflag = 1
  843. end
  844. losers = Random(1,100)
  845. if protect_gang > 1000 & gangmembers.q > 1000 then lost  = 100
  846. else if protect_gang > 50 & gangmembers.q > 50 then lost = 10
  847. else lost = 1
  848. if yourper >= losers then protect_gang = protect_gang - lost
  849. else gangmembers.q = gangmembers.q - lost
  850. if gangmembers.q < 0 then do
  851.    gangmembers.q = -1
  852.    signal hityou
  853. end
  854. if protect_gang < 1 then do
  855.    protect_gang = 0
  856.    signal hitthem
  857. end
  858. signal hitagain
  859.  
  860. Hityou:
  861. call message DoorName, LineNumber,  CYAN 'H'right(gangmembers.q,20,' '), 0
  862. call message DoorName, LineNumber,  '                             'protect_gang'    ', 1
  863. call message DoorName, LineNumber,  ' ', 1
  864. protect.m.n = protect_gang' 'protect_alias
  865. address command "wait 1"
  866. call open(news7,file.2,'A')
  867. call writeln(news7,'Ganglord 'alias.q' is killed by 'protect_gang'''s gang!')
  868. call close(news7)
  869. signal death
  870.  
  871. hitthem:
  872. call message DoorName, LineNumber,  CYAN 'H'right(gangmembers.q,20,' '), 0
  873. call message DoorName, LineNumber,  '                             'protect_gang'    ', 1
  874. call message DoorName, LineNumber,  ' ', 1
  875. protect.m.n = 0
  876. call message DoorName, LineNumber,  ' ', 1
  877. call message DoorName, LineNumber,  center(YELLOW'You wipe him out!',76), 1
  878. address command "wait 1"
  879. call open(news7,file.2,'A')
  880. call writeln(news7,'Ganglord 'alias.q' slaughters 'protect_alias'''s gang!')
  881. call close(news7)
  882. totalgangmembers.f = totalgangmembers.f - hisgang 
  883. points.f = points.f - ((hisgang * 100) - 1000)
  884. protection.f = protection.f - 1
  885. protect.m.n = "0"
  886. signal main
  887.  
  888. quitter:
  889. protect.startx.q.starty.q = protect_gang' 'protect_alias
  890. call open(news7,file.2,'A')
  891. call writeln(news7,'Ganglord 'alias.q' runs from the fight.')
  892. call close(news7)
  893. call message DoorName, LineNumber,  '', 1
  894. call message DoorName, LineNumber,  center(YELLOW'Chicken!',76), 1
  895. address command "wait 1"
  896. signal main
  897.  
  898. move:
  899. if turnsleft.q < 1 then do
  900.    call message DoorName, LineNumber,  '', 1
  901.    call message DoorName, LineNumber,  RED'You do not have any turns left!', 1
  902.    delay (100)
  903.    signal main
  904. end
  905. call message DoorName, LineNumber,  ' ', 1
  906. call message DoorName, LineNumber,  ' ', 1
  907. call message DoorName, LineNumber,  ''BLUE'What location do you want to move to?', 1
  908. call prompt DoorName, LineNumber,     '                               North:', 3
  909. startxtemp1 = upper(result)
  910. call checkcarrier
  911. startxtemp = strip(startxtemp1,'L','0')
  912. do i = 1 to 25
  913.    if startxtemp = i then leave
  914.    if i = 25 then do
  915.       call message DoorName, LineNumber,  ' ', 1
  916.       call message DoorName, LineNumber,  ''RED'Street numbers can only be whole numbers between 1 and 25'CLEAR'', 1
  917.       address command "wait 1"
  918.       signal main
  919.    end
  920. end
  921. call prompt DoorName, LineNumber,     '                                East:', 3
  922. startytemp1 = upper(result)
  923. call checkcarrier
  924. startytemp = strip(startytemp1,'L','0')
  925. do i = 1 to 25
  926.    if startytemp = i then leave
  927.    if i = 25 then do
  928.       call message DoorName, LineNumber,  ' ', 1
  929.       call message DoorName, LineNumber,  ''RED'Street numbers can only be whole numbers between 1 and 25'CLEAR'', 1
  930.       address command "wait 1"
  931.       signal main
  932.    end
  933. end
  934. startx.q = startxtemp
  935. starty.q = startytemp
  936. turnsleft.q = turnsleft.q - 1 
  937. signal main
  938.  
  939. highscores:
  940. pointsg = totalgangmembers.q * 100
  941. pointsp = protection.q * 1000
  942. points.q = pointsg + pointsp
  943. do o = 1 to z
  944.    highpoints.o = points.o
  945.    highalias.o = alias.o
  946. end
  947. do o = 1 to z
  948.    do h = o + 1 to z
  949.       if highpoints.o < highpoints.h then do
  950.          temp = highpoints.o
  951.          highpoints.o = highpoints.h
  952.          highpoints.h = temp
  953.          tempor = highalias.o
  954.          highalias.o = highalias.h
  955.          highalias.h = tempor
  956.       end
  957.    end
  958. end
  959. call message DoorName, LineNumber,  CLS, 1
  960. call message DoorName, LineNumber,  center(YELLOW'-----------------------------------------',70), 1
  961. call message DoorName, LineNumber,  center(RED'Top 10 Chicago Ganglords',70), 1
  962. call message DoorName, LineNumber,  center(YELLOW'-----------------------------------------',70), 1
  963. call message DoorName, LineNumber,  '', 1
  964. if z > 10 then x = 10
  965. else x = z
  966. do t = 1 to x
  967.    if highalias.t ~= 'DEADMAN' then do
  968.       call message DoorName, LineNumber,  CYAN right(highalias.t,32,' '), 0
  969.       call message DoorName, LineNumber,  MAGENTA ' ' highpoints.t, 1
  970.    end
  971. end
  972. do i = 1 to Lines - 16
  973.    call message DoorName, LineNumber,  '', 1
  974. end
  975. call hotkey DoorName, LineNumber,  'Hit return to continue...'
  976. call checkcarrier
  977. signal main
  978.  
  979. news:
  980. call message DoorName, LineNumber,  CLS, 1
  981. y = 0
  982. do i = 2 to 8
  983.    select
  984.       when i = 2 then call message DoorName, LineNumber,  CYAN, 1
  985.       when i = 3 then call message DoorName, LineNumber,  RED, 1
  986.       when i = 4 then call message DoorName, LineNumber,  MAGENTA, 1
  987.       when i = 5 then call message DoorName, LineNumber,  BLUE, 1
  988.       when i = 6 then call message DoorName, LineNumber,  GREEN, 1
  989.       when i = 7 then call message DoorName, LineNumber,  YELLOW, 1
  990.       otherwise call message DoorName, LineNumber,  WHITE, 1
  991.    end
  992.    if exists(file.i) then call open(gamenews,file.i,'R')
  993.    if exists(file.i) then do until EOF(gamenews)
  994.       y = y + 1
  995.       call message DoorName, LineNumber,  Readln(gamenews), 1
  996.       if y // (LINES - 3) = 0 then do
  997.          call message DoorName, LineNumber,  'Hit RETURN to continue or Q to quit', 1
  998.          call hotkey DoorName, LineNumber, ""
  999.          ans = upper(result)
  1000.          call checkcarrier
  1001.          if ans = 'Q' then do
  1002.             call close(gamenews)
  1003.             signal main
  1004.          end
  1005.       end
  1006.    end
  1007.    call close(gamenews)
  1008. end
  1009. call hotkey DoorName, LineNumber,  'Hit return to continue...'
  1010. call checkcarrier
  1011. signal main  
  1012.  
  1013. instructions:
  1014. call message DoorName, LineNumber,  CLS, 1
  1015. if ansiflag then instfile = file.10
  1016. else instfile = file.1
  1017. i = 1
  1018. call open(instr,instfile,'R')
  1019. do until EOF(instr)
  1020.    call message DoorName, LineNumber,  Readln(instr), 1
  1021.    if i // LINES = 0 
  1022.    then do 
  1023.       call hotkey DoorName, LineNumber,  'Hit return to continue...'
  1024.       call checkcarrier
  1025.       call message DoorName, LineNumber,  "", 1
  1026.    end
  1027.    i = i + 1
  1028. end
  1029. call close(instr)
  1030. call hotkey DoorName, LineNumber,  'Hit return to continue...'
  1031. call checkcarrier
  1032. signal main
  1033.  
  1034.  
  1035. stats:
  1036. call message DoorName, LineNumber,  CLS, 1
  1037. call message DoorName, LineNumber,  center(RED'-----------------------------------------',76), 1
  1038. call message DoorName, LineNumber,  center(YELLOW||Spacename'''s' 'STATISTICS',76), 1
  1039. call message DoorName, LineNumber,  center(RED'-----------------------------------------',76), 1
  1040. call message DoorName, LineNumber,  '', 1
  1041. call message DoorName, LineNumber,  CYAN right('Alias:',32,' '), 0
  1042. call message DoorName, LineNumber,  MAGENTA ' ' Alias.q, 1
  1043. call message DoorName, LineNumber,  CYAN right('Position:',32,' '), 0
  1044. call message DoorName, LineNumber,  MAGENTA ' ' street.m 'North', 1
  1045. call message DoorName, LineNumber,  CYAN right(' ',32,' '), 0
  1046. call message DoorName, LineNumber,  MAGENTA ' ' street.n 'East', 1
  1047. call message DoorName, LineNumber,  CYAN right('Total Gangmembers:',32,' '), 0
  1048. call message DoorName, LineNumber,  MAGENTA ' ' totalgangmembers.q, 1
  1049. call message DoorName, LineNumber,  CYAN right('Gangmembers with you:',32,' '), 0
  1050. call message DoorName, LineNumber,  MAGENTA ' ' gangmembers.q, 1
  1051. call message DoorName, LineNumber,  CYAN right('Money:',32, ' '), 0
  1052. call message DoorName, LineNumber,  MAGENTA ' ' money.q, 1
  1053. call message DoorName, LineNumber,  CYAN right('Bootleg Operations:',32,' '), 0
  1054. call message DoorName, LineNumber,  MAGENTA ' ' bootleg.q, 1
  1055. call message DoorName, LineNumber,  '' , 1
  1056. call message DoorName, LineNumber,  GREEN 'Do you wish to see all blocks protected by you? (Y/n) ', 0
  1057. call hotkey DoorName, LineNumber, ""
  1058. ans = upper(result)
  1059. call checkcarrier
  1060. if upper(ans)='N' then signal main
  1061. call message DoorName, LineNumber,  '', 1
  1062. call message DoorName, LineNumber,  '', 1
  1063. call message DoorName, LineNumber,  CYAN 'Blocks protected:', 1
  1064. i = 12
  1065. do c = 1 to 25
  1066.    do c1 = 1 to 25
  1067.       protect_alias = Delword(protect.c.c1,1,1)
  1068.       if protect_alias = alias.q then do
  1069.          call message DoorName, LineNumber,  MAGENTA street.c 'North' street.c1 'East with' word(protect.c.c1,1) 'gangmembers', 1
  1070.          if i // LINES - 1 = 0 then do
  1071.             call hotkey DoorName, LineNumber,  'Hit return to continue...'
  1072.             call checkcarrier
  1073.             call message DoorName, LineNumber,  '', 1
  1074.          end
  1075.          i = i + 1
  1076.       end
  1077.    end
  1078. end
  1079. call hotkey DoorName, LineNumber,  'Hit return to continue...'
  1080. call checkcarrier
  1081. signal main
  1082.  
  1083. enter:
  1084. call message DoorName, LineNumber,  CLS, 1
  1085. entera:
  1086. call prompt DoorName, LineNumber,  YELLOW'To (? to list): ', 15
  1087. messto = upper(result)
  1088. call checkcarrier
  1089. a = 1
  1090. if messto = '?' then do
  1091.    call message DoorName, LineNumber,  '', 1
  1092.    do i = 1 to z
  1093.       call message DoorName, LineNumber,  MAGENTA alias.i, 1
  1094.    end
  1095.    signal entera
  1096. end
  1097. if messto = '' then signal main
  1098. do u = 1 to z
  1099.    if alias.u = messto then break
  1100.    if u = z then do
  1101.       call message DoorName, LineNumber,  '', 1
  1102.       call message DoorName, LineNumber,  RED'That ganglord is not in Chicago!', 1
  1103.       address command "wait 1"
  1104.       signal enter
  1105.    end
  1106. end
  1107. call prompt DoorName, LineNumber,  WHITE'Do you want to send this message anonymously?(y/N)', 1
  1108. ans = upper(result)
  1109. call checkcarrier
  1110. if ans = 'Y' then messfrom = 'Anonymous'
  1111. else messfrom = alias.q
  1112. call message DoorName, LineNumber,  CLS, 1
  1113. call message DoorName, LineNumber,  BLUE'Enter your message. Enter a return on a new line to leave editing.', 1
  1114. call message DoorName, LineNumber,  '', 1
  1115. y = 1
  1116. conmess:
  1117. do i = y to 20
  1118.    call message DoorName, LineNumber,  WHITE'>', 0
  1119.    do ii = 1 to 78
  1120.       call hotkey DoorName, LineNumber, ""
  1121.       messbody.i.ii = result
  1122.       call checkcarrier
  1123.       if messbody.i.ii ~= '' then do
  1124.          call message DoorName, LineNumber,  ''||messbody.i.ii, 1
  1125.       end
  1126.       if messbody.i.1 = '' then signal savemess
  1127.       if messbody.i.ii = '' then break
  1128.       if messbody.i.ii = '' then ii = ii - 2
  1129.    end
  1130.    call message DoorName, LineNumber,  '', 1
  1131. end
  1132.  
  1133. savemess:
  1134. y = i
  1135. call message DoorName, LineNumber,  '', 1
  1136. call message DoorName, LineNumber,  GREEN'(Q) to quit, (S) to save, (R) to restart or (C) to continue', 1
  1137. call hotkey DoorName, LineNumber, ""
  1138. answer = upper(result)
  1139. call checkcarrier
  1140. if answer = 'Q' then signal main
  1141. if answer = 'C' then signal conmess
  1142. if answer = 'R' then signal enter
  1143. if answer = 'S' then signal savemess1
  1144. else signal savemess
  1145.  
  1146. savemess1:
  1147. call message DoorName, LineNumber,  MAGENTA'Saving your message...', 0
  1148. if exists('Doors:chicago/gangland/messages') then call open(mess,'Doors:chicago/gangland/messages','A')
  1149. else call open(mess,'Doors:chicago/gangland/messages','W')
  1150. call writeln(mess,messto)
  1151. call writeln(mess,messfrom)
  1152. do h = 1 to y
  1153.    store = ''
  1154.    call message DoorName, LineNumber,  '.', 0
  1155.    do ii = 1 to 78
  1156.       store = store''messbody.h.ii
  1157.       if messbody.h.ii = '' then break
  1158.    end
  1159.    call writeln(mess,store)
  1160. end
  1161. call writeln(mess,'*****')
  1162. call close(mess)
  1163. signal main
  1164.  
  1165. death:
  1166. call message DoorName, LineNumber,  CLS, 1
  1167. call message DoorName, LineNumber,  center(RED'You have died 'SpaceName'.',76), 1
  1168. call message DoorName, LineNumber,  ' ', 1
  1169. call message DoorName, LineNumber,  CYAN'Clearing your stats..', 0
  1170. do c = 1 to 25
  1171.    call message DoorName, LineNumber,  '.', 0
  1172.    do c1 = 1 to 25
  1173.       protect_alias = Delword(protect.c.c1,1,1)
  1174.       if protect_alias = alias.q then
  1175.       protect.c.c1 = 0  
  1176.    end
  1177. end
  1178. alias.q = 'DEADMAN'
  1179. points.q = 0
  1180. totalgangmembers.q = 0
  1181. protection.q = 0
  1182. startx.q = 0
  1183. starty.q = 0
  1184. deathflag = 1
  1185. signal goodbye
  1186.  
  1187. goodbye:      
  1188. call message DoorName, LineNumber,  CLS, 1
  1189. call message DoorName, LineNumber,  ''CYAN'Saving game stats..', 0
  1190. call open(data,File.9,'W')
  1191. do c = 1 to 25
  1192.    call message DoorName, LineNumber,  '.', 0
  1193.    do c1 = 1 to 25
  1194.       call writeln(data,protect.c.c1)
  1195.    end
  1196. end
  1197. pointsg = totalgangmembers.q * 100
  1198. pointsp = protection.q * 1000
  1199. points.q = pointsg + pointsp
  1200. do i = 1 to z
  1201.    if alias.i = '' then iterate
  1202.    alias.i = space(alias.i,1,'_')
  1203.    stats.i = name.i' 'alias.i' 'turnsleft.i' 'gangmembers.i' 'startx.i' 'starty.i' 'points.i' 'money.i' 'totalgangmembers.i' 'protection.i' 'bootleg.i  
  1204.    call writeln(data,stats.i)
  1205. end
  1206. call close(data)
  1207. address command "delete Doors:Chicago/Gangland/InUse"
  1208. call message DoorName, LineNumber,  CLS, 1
  1209. call message DoorName, LineNumber,  ' ', 1
  1210. call message DoorName, LineNumber,  RED, 1
  1211. call message DoorName, LineNumber,  center('Thank you for playing Chicago Gangland',70), 1
  1212. call message DoorName, LineNumber,  ' ', 1
  1213. call message DoorName, LineNumber,  ' ', 1
  1214. call message DoorName, LineNumber,  MAGENTA, 1
  1215. call message DoorName, LineNumber,  center('Now returning you to the 'bbsname' BBS', 70), 1
  1216. call message DoorName, LineNumber,  CLEAR, 1
  1217. address command "wait 1"
  1218. call Exit_Door DoorName, LineNumber
  1219. exit
  1220.  
  1221. quickexit:
  1222.    call message DoorName, LineNumber,  CLS, 1
  1223.    call message DoorName, LineNumber,  ' ', 1
  1224.    call message DoorName, LineNumber,  RED, 1
  1225.    call message DoorName, LineNumber,  center('Thank you for playing Chicago Gangland',70), 1
  1226.    call message DoorName, LineNumber,  ' ', 1
  1227.    call message DoorName, LineNumber,  ' ', 1
  1228.    call message DoorName, LineNumber,  MAGENTA, 1
  1229.    call message DoorName, LineNumber,  center('Now returning you to 'bbsname' BBS',70), 1
  1230.    call message DoorName, LineNumber,  CLEAR, 1
  1231.    address command "delete Doors:Chicago/Gangland/InUse"
  1232.    address command "wait 1"
  1233.    call Exit_Door DoorName, LineNumber
  1234.    exit
  1235.  
  1236. syntax:
  1237.    call message DoorName, LineNumber,  "**syntax** in line: " SIGL " Severity: " RC, 1
  1238.    say "**syntax** in line: " SIGL " Severity: " RC
  1239.    call message DoorName, LineNumber,  "Notify Sysop Immediately!!!!!!", 1
  1240.    call message DoorName, LineNumber,  "   ", 1 
  1241.    address command "delete Doors:Chicago/Gangland/InUse"
  1242.    call Exit_Door DoorName, LineNumber
  1243.    exit
  1244.  
  1245. ioerr:
  1246.    call message DoorName, LineNumber,  "**IO ERROR** in line: " SIGL " Severity: " RC, 1
  1247.    say"**IO ERROR** in line: " SIGL " Severity: " RC
  1248.    call message DoorName, LineNumber,  "Notify Sysop Immediately!!!!!!", 1
  1249.    call message DoorName, LineNumber,  "   ", 1
  1250.    address command "delete Doors:Chicago/Gangland/InUse"
  1251.    call Exit_Door DoorName, LineNumber
  1252.    exit
  1253.  
  1254. call Exit_Door DoorName, LineNumber
  1255. exit
  1256.  
  1257. CHECKCARRIER:
  1258. call cdetect doorname,linenumber
  1259. if upper(result)="NO CARRIER!" then signal endit
  1260. return
  1261.  
  1262.